﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Windows.Forms;

namespace AudioPlayer.GUI.Theme {
	internal class DefaultColorTable : AudioPlayer.Plugin.Theme.IColorTable {
		#region Variables
		private Color _musicTreeBackground;
		private Color _musicTreeNodeBackground1;
		private Color _musicTreeNodeBackground2;
		private Color _musicTreeNodeBorder;
		private Color _musicTreeNodeTextNormal;
		private Color _musicTreeNodeTextSelect;
		private Color _musicTreeGroupBackground1;
		private Color _musicTreeGroupBackground2;
		private Color _musicTreeGroupTextNormal;

		private Color _toolStripBorder;
		private Color _toolStripBackground1;
		private Color _toolStripBackground2;

		private Color _panelMainBorder;

		private Color _progressActiveBg1;
		private Color _progressActiveBg2;
		#endregion
		#region Static
		public static DefaultColorTable Default {
			get {
				DefaultColorTable defaultStyle = new DefaultColorTable();
				//Colors
				defaultStyle._musicTreeBackground = Color.FromArgb(241,245,252);
				defaultStyle._musicTreeGroupBackground1 = Color.FromArgb(241, 245, 252);
				defaultStyle._musicTreeGroupBackground2 = Color.FromArgb(241, 245, 252);

				defaultStyle._musicTreeGroupTextNormal = Color.DarkGray;
				defaultStyle._musicTreeNodeTextNormal = Color.Gray;
				defaultStyle._musicTreeNodeTextSelect = Color.White;
				defaultStyle._musicTreeNodeBorder = Color.FromArgb(80, 117, 167);
				defaultStyle._musicTreeNodeBackground1 = Color.FromArgb(180, 204, 235);
				defaultStyle._musicTreeNodeBackground2 = Color.FromArgb(131, 169, 216);
				

				defaultStyle._panelMainBorder = Color.FromArgb(80, 117, 167);

				defaultStyle._toolStripBorder = Color.FromArgb(80, 117, 167);
				defaultStyle._toolStripBackground1 = Color.FromArgb(196,218,250);
				defaultStyle._toolStripBackground2 = Color.FromArgb(171, 200, 247);

				defaultStyle._progressActiveBg1 = Color.FromArgb(169, 210, 255);
				defaultStyle._progressActiveBg2 = Color.FromArgb(128, 187, 255);
				return defaultStyle;
			}
		}
		#endregion
		#region Public Voids
		public void Dispose() {
			
		}
		#endregion
		#region Property
		public Color MusicTreeBackground {
			get { return _musicTreeBackground; }
		}
		public Color MusicTreeNodeBackground1 {
			get { return _musicTreeNodeBackground1; }
		}
		public Color MusicTreeNodeBackground2 {
			get { return _musicTreeNodeBackground2; }
		}
		public Color MusicTreeNodeBorder {
			get { return _musicTreeNodeBorder; }
		}
		public Color MusicTreeNodeTextNormal {
			get { return _musicTreeNodeTextNormal; }
		}
		public Color MusicTreeNodeTextSelect {
			get { return _musicTreeNodeTextSelect; }
		}
		public Color MusicTreeGroupBackground1 {
			get { return _musicTreeGroupBackground1; }
		}
		public Color MusicTreeGroupBackground2 {
			get { return _musicTreeGroupBackground2; }
		}
		public Color MusicTreeGroupTextNormal {
			get { return _musicTreeGroupTextNormal; }
		}

		public Color PanelMainBorder {
			get { return _panelMainBorder; }
		}

		public Color ToolStripBorder {
			get { return _toolStripBorder; }
		}
		public Color ToolStripBackground1 {
			get { return _toolStripBackground1; }
		}
		public Color ToolStripBackground2 {
			get { return _toolStripBackground2; }
		}

		public Color MenuStripBackground1 {
			get {
				return ControlPaint.Light(this.ToolStripBackground1);
			}
		}
		public Color MenuStripBackground2 {
			get {
				return ControlPaint.Light(this.ToolStripBackground2);
			}
		}

		public Color ProgressBackground1 {
			get { return ToolStripBackground1; }
		}
		public Color ProgressBackground2 {
			get { return ToolStripBackground2; }
		}
		public Color ProgressActiveBackground1 {
			get { return _progressActiveBg1; }
		}
		public Color ProgressActiveBackground2 {
			get { return _progressActiveBg2; }
		}
		#endregion
	}
}
